package cn.zhouchao.fallback;

import cn.zhouchao.User;
import cn.zhouchao.feign.UserService;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;

@Component // 交给spring管理
public class UserServiceFallbackFactory implements FallbackFactory<UserService> {
    /**
     * 工厂方法
     * @param throwable
     * @return
     */
    @Override
    public UserService create(Throwable throwable) {
        return new UserService() {
            @Override // 这个方法就是getUser-feign接口托底数据
            public User getUser(Long id) {
                return new User(-1L, "openfeign熔断", "服务不可调用!死了！");
            }
            // 如果在接口里还有其他方法的话，那么就需要在这里加上重写其他方法的托底数据
        };
    }
}
